const express = require('express')
const fs = require('fs')

const app = express()

app.get('/todos', (req, res) => {
    fs.readFile('./db.json', 'utf-8', (err, data) => { // 当前读取文件是异步的，所以回调的执行是在最下面的res.send之后
        if (err) {
            return res.status(500).json({
                error: err.message
            })
        }

        const db = JSON.parse(data)
        res.status(200).json(db.todos)
    })
    // res.send('get /todos')
})
app.get('/todos/:id', (req, res) => {
    fs.readFile('./db.json', 'utf-8', (err, data) => { // 当前读取文件是异步的，所以回调的执行是在最下面的res.send之后
        if (err) {
            return res.status(500).json({
                error: err.message
            })
        }

        const db = JSON.parse(data)
        const find = db.todos.find(x => x.id === Number.parseInt(req.params.id))
        if (!find) {
            return res.status(404).end()
        }
        res.status(200).json(find)
    })
    // res.send(`get /todos/${req.params.id}`)
})
app.post('/todos', (req, res) => {
    res.send('post /todos')
})
app.patch('/todos', (req, res) => {
    res.send('patch /todos')
})
app.delete('/todos/:id', (req, res) => {
    res.send('delete /todos/:id')
})

app.listen(3000, () => {
    console.log('Server is running at http://localhost:3000/')
})